當我們開始使用component之後會發現一些問題接踵而來,
最常見的就是component之間要如何溝通,相互傳值。
將 外層/上層 的資料傳遞給 內層/下層 ,
我們可以透過props來達到我們的目的。
childComponent.vue
childComponent.vue 輸入下方程式碼:template:
<template>
    <div>
        <button > {{title}} </button>
    </div>
</template>
我們在component裡面做一個button,
button上面顯示的字由{{title}}來控制
script:
<script>
export default {
    name:'childComponent',
    props:['title',]
}
</script>
在props裡面宣告一個變數(屬性)title,來接收外層傳進來的數值。
這樣就完成內層component的設計了。
接下來,我們看看在外層如何使用。
App.vue 裡面修改下方程式碼:<script>
import childComponent from './components/childComponent'
export default {
  name: 'App',
  components: {
    child:childComponent,
  },
  
  
}
</script>
引用(import)我們剛剛完成的childComponent(component),
把她取個小明叫child
template:
<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <child title='I am Button Title'></child>
</template> 
我們留著Vue的logo(其實只是為了不會太單調),
加入我們剛剛完成的元件,將title傳入。
npm run serve 
這樣就完成從外層傳值到內層了。
有小夥伴會問既然是標題,那能不能設定他只能傳文字(字串 String)
childComponent.vue裡面的propsscript:
<script>
export default {
    name:'childComponent',
    props:{
        title:String, //規定只能傳字串型態
    },
}
</script>
這邊要提一下,雖然說你能規定他只能傳甚麼樣的型態,
但是這邊並不會有強制力。
會自動幫你轉型成最適合的型態
(小夥伴可以試著把它改成Boolean型態,然後按下F12看瀏覽器的console)
如果有開發經驗的小夥伴可能還會問,那我應該如何給予預設值?
childComponent.vue裡面的propsscript:
<script>
export default {
    name:'childComponent',
    props:{
        title:{
            type: String, //規定只能傳字串型態
            default: '這是預設字串' //可設定預設值
            }, 
    },
}
</script>
這樣就能夠有預設值了。
App.vue裡,<child>的title屬性就可以看到預設值了。<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <child></child>
</template> 

原本打算在本篇一次性說完剩下的 子傳父 、 雙向傳值。
不過,有小夥伴覺得一次的資訊量太大,所以將它分成三篇,一次一次講解。